home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: 500 MB Amiga Software / 500 MB Amiga Software - Euber 130 - Amiga Games Disc & Mag.iso / arexx / dt_sort.rexx < prev    next >
OS/2 REXX Batch file  |  1994-04-16  |  3KB  |  131 lines

  1. /*
  2.  * dt_sort.rexx
  3.  *  $VER: 1.0
  4.  *  25-Mar-94
  5.  *  © Delirium Softdesign
  6.  *
  7.  * An ARexx script for sorting large module directories
  8.  *
  9.  * Usage: dt_sort.rexx <dir>
  10.  *
  11.  */
  12.  
  13.  
  14. /* standard setup */
  15. options results
  16. options failat 20
  17.  
  18. /* get arguments */
  19. parse arg directory .
  20.  
  21. /* create the directory name */
  22. if directory == '' then do
  23.   directory = pragma('D')
  24. end
  25. if right(directory,1) ~== ':' then do
  26.   if index(directory,':') == '0' then do
  27.     if right(pragma('D'),1) ~== ':' then do
  28.       directory = '/'||directory
  29.     end
  30.   directory = pragma('D')||directory
  31.   end
  32.   if right(directory,1) ~== '/' then do
  33.     directory = directory||'/'
  34.   end
  35. end
  36.  
  37. /* test, if the directory is vaild */
  38. if exists(directory) == '0' then do
  39.   say 'invalid directory'
  40.   exit 10
  41. end
  42.  
  43. /* test, if DeliTracker is running */
  44. if show('P','DELITRACKER') == '0' then do
  45.   say 'DeliTracker is not running'
  46.   exit 10
  47. end
  48.  
  49. /* add the functions of the 'rexxsupport.library' */
  50. if addlib('rexxsupport.library',0,-30,0) == '0' then do
  51.   if show('L','rexxsupport.library') == '0' then do
  52.     say 'couldn''t open rexxsupport.library'
  53.     exit 10
  54.   end
  55. end
  56.  
  57. /* get the contents of the module directory */
  58. modlist = showdir(directory,'F',':')||':'
  59.  
  60. say 'sorting modules'
  61.  
  62. address 'DELITRACKER'
  63.  
  64. /* store quickstart state */
  65. status G qst
  66. quickstart = result
  67.  
  68. /* do not play the modules after loading */
  69. quick no
  70.  
  71. /* eject the old module */
  72. eject
  73.  
  74. /* process the module directory */
  75. do until (modlist == '')
  76.  
  77.   filename = left(modlist,index(modlist,':')-1)
  78.   modlist = delstr(modlist,1,index(modlist,':'))
  79.  
  80.   if filename ~== '' then do
  81.  
  82.     playmod directory||filename
  83.  
  84.     status M pnr
  85.     playernum = result
  86.  
  87.     if playernum == '0' then do
  88.       say 'could not identify "'||filename||'"'
  89.     end
  90.     else do
  91.  
  92.       status M fmt
  93.       playername = result
  94.  
  95.       /* create a new directory if necessary */
  96.       if exists(directory||playername) == '0' then do
  97.         say 'module directory "'||playername||'" did not exist. It was created.'
  98.         CALL makedir(directory||playername)
  99.       end
  100.  
  101.       /* move the module into the specific directory */
  102.       if exists(directory||playername||'/'||filename) == '0' then do
  103.         say 'moving "'||filename||'" into the '||playername||' directory'
  104.         CALL rename(directory||filename,directory||playername||'/'||filename)
  105.       end
  106.       else do
  107.         say 'module "'||filename||'" is already in the "'||playername||'" directory'
  108.       end
  109.  
  110.     end
  111.  
  112.     eject
  113.  
  114.   end
  115.  
  116. end
  117.  
  118. /* restore quickstart state */
  119. quick quickstart
  120.  
  121. address 'REXX'
  122.  
  123. say 'all done'
  124.  
  125. /* remove the functions of the 'rexxsupport.library' */
  126. remlib('rexxsupport.library')
  127.  
  128. /* end of script */
  129. exit 0
  130.  
  131.